// -*- C++ -*-

//=============================================================================
/**
*  @file    Service_Object.h
*
*	@date    2009-12-17 17:08
*
*  @author wing <totti19851101@gmail.com>
*/
//=============================================================================

#ifndef _SERVICE_OBJECT_H_
#define _SERVICE_OBJECT_H_

#include "Pre.h"
#include "Shared_Object.h"
#include "Event_Handler.h"

/**
* @class Service_Object
*
* @brief Provide the abstract base class common to all service
* implementations.
*/

class Service_Object : public Shared_Object, public Event_Handler
{
public:
	// = Initialization and termination method
	/// Constructor
	Service_Object( ACE_Reactor * = 0 );

	/// Destructor
	virtual ~Service_Object( void );

	/// Temporarily disable a service without removing it completely.
	virtual int suspend( void );

	/// Re-enable a previously suspended service.
	virtual int reusme( void );
};

#include "Post.h"
#endif//_SERVICE_OBJECT_H_